package com.lambda;

import java.util.Arrays;
import java.util.Comparator;

/**
 * Created by
 * 当需要通过一个方法来获取java.util.Comparator接口类型的对象作为排序器时就可以调该方法获取
 * 如果方法的返回值是一个函数式的接口，那么可以用lambda表达式
 *
 * 可以用lambda表达式的函数式接口在java.util.function包里面
 *
 * @author touni
 * @date 2019/4/29
 * @time 10:20
 */
public class DemoComparator {

    public static Comparator<String> useComparator(){
        //方法的返回值类型是一个接口，那么可以返回这个接口的匿名内部类
        //return (String s1,String s2)-> {return s1.length()-s2.length();};
        //再次优化lambda表达式
        return (s1,s2) -> s1.length()-s2.length();
    }

    public static void main(String[] args) {
        String arr[] = {"aaaa","vvvvvvv","xc","ssddfdfefewe"};
        System.out.println("排序前的："+Arrays.toString(arr));
        Arrays.sort(arr,useComparator());
        System.out.println("排序后的："+Arrays.toString(arr));


    }





}
